package com.comtop.topcloud.device.model.influxdb;



import lombok.Data;
import org.influxdb.annotation.Column;
import org.influxdb.annotation.Measurement;

import java.math.BigDecimal;
import java.time.LocalDateTime;

@Data
@Measurement(name = "gateway_usage")
public class GatewayUsageModel {

    @Column(name = "comm_flow_m")
    private Integer commFlowM; // 月度设备通信流量统计（单位：KB）

    @Column(name = "comm_flow_y")
    private Integer commFlowY; // 年度设备通信流量统计（单位：KB）

    @Column(name = "cpu")
    private String cpu; // 设备 CPU 占用率

    @Column(name = "disk_used")
    private String diskUsed; // 设备磁盘使用率

    @Column(name = "mem_used")
    private String memUsed; // 设备内存使用率

    @Column(name = "signal")
    private Integer signal; // 设备信号强度

    @Column(name = "temperature")
    private BigDecimal temperature; // 设备温度（单位：摄氏度），使用 BigDecimal 以支持小数精度

    @Column(name = "battery_level")
    private Integer batteryLevel; // 电池电量百分比

    @Column(name = "latency")
    private Integer latency; // 网络延迟（单位：ms）

    @Column(name = "error_count")
    private Integer errorCount; // 设备运行错误次数

    @Column(name = "device_id", tag = true)
    private String deviceId; // 设备ID（设备的唯一标识符）

    @Column(name="device_name")
    private String deviceName;

    @Column(name = "p_key", tag = true)
    private String pKey; // 产品系列编号

    @Column(name = "seq")
    private Integer seq; // 数据帧序号（可以表示设备上传的数据帧的顺序）

    @Column(name = "sn", tag = true)
    private String sn; // 网关编号

    @Column(name = "ts")
    private Long ts; // 绝对时间（Unix 时间戳，单位为秒）

    @Column(name = "org_id", tag = true)
    private String orgId; // 组织编码

    @Column(name = "project_id", tag = true)
    private String projectId; // 项目ID

    @Column(name="time")
    private LocalDateTime time;

    @Column(name="monitor_Name")
    private String monitorName;

    @Column(name="monitor_Name")
    private String monitorId;

}